package question04;


/**
 * @author yuan
 * @date 2021/11/29
 */
public class Solution {

    public static void main(String[] args) {

        int[] nums1 = {};
        int[] nums2 = {2, 3};
        System.out.println(new Solution().findMedianSortedArrays(nums1, nums2));
    }

    public double findMedianSortedArrays(int[] nums1, int[] nums2) {

        int[] nums = new int[nums1.length + nums2.length];
        int numsIndex = 0;
        int nums1Index = 0;
        int nums2Index = 0;
        while (nums1Index < nums1.length && nums2Index < nums2.length) {
            if (nums1[nums1Index] < nums2[nums2Index]) {
                nums[numsIndex] = nums1[nums1Index];
                nums1Index++;
            }else {
                nums[numsIndex] = nums2[nums2Index];
                nums2Index++;
            }
            numsIndex++;
        }
        // 剩余元素处理
        if (nums1Index == nums1.length) {
            // nums2 还有剩余元素
            for (int i = nums2Index; i < nums2.length; i++) {
                nums[numsIndex] = nums2[i];
                numsIndex++;
            }
        }else {
            // nums1 还有剩余元素
            for (int i = nums1Index; i < nums1.length; i++) {
                nums[numsIndex] = nums1[i];
                numsIndex++;
            }
        }
        // 获取中位数
        return nums.length % 2 == 0
                ? (double) (nums[nums.length / 2] + nums[nums.length / 2 - 1]) / 2
                : (double) nums[nums.length / 2];
    }
}
